package pers.zero.jwt.spring;

import pers.zero.jwt.entity.UserPrinciple;


/**
 * <p><b>
 * 根据 jwt token 获取用户信息
 * </b></p>
 * <br/>
 * 创建时间: 9/2/2019 4:23 PM
 *
 * @author Zero
 */
public class UserPrincipleAttr {

    /**
     * 获取用户信息
     *
     * @return NotNull UserPrinciple
     */
    public static UserPrinciple getPrinciple() {
        UserPrinciple principle = UserPrincipleManager.getPrinciple();

        if (principle == null) {
            throw new RuntimeException("根据token解析未能解析出用户信息!!可能失败的原因:\n 1. 未配置jwt拦截器，或者jwt-client.enable 为false。\n2.当前方法未被 jwt 拦截器拦截。 ");
            //return new UserPrinciple();
        }

        return principle;

    }

    /**
     * 获取用户的 id
     *
     * @return Integer 或者  null
     */
    public static Integer getUserId() {
        return getPrinciple().getUid();
    }



    /**
     * 返回用户角色 id
     *
     * @return roleId  or null
     */
    public static Integer getUserRoleId() {
        return getPrinciple().getRoleId();
    }

    /**
     * 返回用户的名字
     *
     * @return String or null
     */
    public static String getDisplayName() {
        return getPrinciple().getName();
    }


}
